home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
c
/
EGCSWOSAlib.lha
/
src.lha
/
RangeRand.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-08-02
|
316b
|
19 lines
#include <exec/types.h>
ULONG RangeSeed;
ULONG RangeRand(ULONG maxValue)
{ ULONG a=RangeSeed;
UWORD i=maxValue-1;
do
{ ULONG b=a;
a<<=1;
if((LONG)b<=0)
a^=0x1d872b41;
}while((i>>=1));
RangeSeed=a;
if((UWORD)maxValue)
return (UWORD)((UWORD)a*(UWORD)maxValue>>16);
return (UWORD)a;
}